iT邦幫忙

DAY 6
10

SQL Server 無敵手冊系列 第 6

SQL Server 無敵手冊第六篇- 在 SQL Server 中卸離和附加資料庫

  • 分享至 

  • xImage
  •  

在上一篇我們介紹了如何在同一個 SQL Server 執行個體內移動資料庫,如果要移動到不同的 SQL Server 執行個體就可以利用卸離和附加資料庫來完成。
卸離和附加資料庫在您想要將資料庫移動到不同的機器上(附加作業可以跨 32 位元和 64 位元環境執行。),或是同一台機器的另外一個SQL Server 執行個體時,相當有用。
SQL Server 線上叢書提供 Transact-SQL與SQL Server Management Studio等多種方法,因為個人認為SQL Server會容易入門最大的原因在它提供不錯的圖形介面,所以這篇文章就以SQL Server Management Studio為主來介紹。
[b]卸離資料庫:[\b]
資料庫卸離之後,SQL Server在資料庫系統上會將該資料庫移除,但是在檔案系統會保留該資料庫的資料檔以及交易紀錄檔,所以卸離後就可以在檔案系統上使用這些檔案將資料庫附加到其他的 SQL Server 執行個體,包括原本的 SQL Server 執行個體。
卸離資料庫步驟:
1.在SQL Server Management Studio中展開 [資料庫],並選取您想要卸離使用者資料庫名稱,以滑鼠右鍵按一下資料庫名稱,並指向 [工作],然後按一下 [卸離]。此時會出現 [卸離資料庫] 對話視窗。
本範例使用AdventureWorksDW

2.在[要卸離的資料庫]方格中的 [資料庫名稱]資料行會顯示您所選取的資料庫名稱。請確認是否正確,如果該資料庫目前有使用連接,會如下圖在[訊息]資料行顯示。

3.點選[訊息]資料行中的URL會顯示下列提示的Message Box。

4.建議先行關閉連接後再卸離資料庫,如果您確認該連接不會影響或您想要強行關閉連接,可以按一下 [卸除連接] 核取方塊。

5.待您關閉了連接之後,再進入[卸離資料庫] 對話視窗,就會在[狀態]資料行顯示為"就緒"。

6.依預設,卸離作業會在卸離資料庫之前更新過時的最佳化統計資料。若要更新現有的最佳化統計資料,請按一下 [更新統計資料] 核取方塊。
7.當您確定要卸離資料庫時,請按一下 [確定]。卸離後[卸離資料庫] 對話視窗會自動關閉。
[b]附加資料庫 :[\b]
如果資料檔(MDF 和 NDF 檔案)路徑變更(附加時與卸離比較),此時您附加資料庫時,必須指定檔案的目前路徑。如果附加的主要資料檔是唯讀的,則 Database Engine 會假設該資料庫也是唯讀的。
附加資料庫步驟:
1.在 SQL Server Management Studio 的 [物件總管] 中,以滑鼠右鍵按一下 [資料庫],然後按一下 [附加]。

2.在 [附加資料庫] 對話視窗中,在要附加的資料庫,按一下 [加入]。

3.在 [尋找資料庫檔案] 對話方塊中,選取資料庫所在的磁碟機、展開目錄樹狀結構,尋找並選取資料庫的 .mdf 檔案;例如:

C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\AdventureWorks_Data.mdf


PS:嘗試選取已經附加的資料庫,會產生錯誤。
4.若要變更名稱來附加資料庫,請在 [附加資料庫] 對話方塊的 [附加為] 資料行中輸入名稱。
5.若要變更資料庫的擁有者,請在 [擁有者] 資料行中選取不同的項目。

6.準備好附加資料庫時,請按一下 [確定]。完成後會自動關閉[附加資料庫] 對話視窗。
ps:附加資料庫後,您可能需要重新整理畫面後才能看到附加上的資料庫,您可以在 SQL Server Management Studio 的 [物件總管] 中,以滑鼠右鍵按一下 [資料庫],然後按一下[重新整理]。

現在您已經學會如何使用SQL Server Management Studio卸離和附加資料庫。


上一篇
SQL Server 無敵手冊第五篇- 移動 SQL Server 的系統資料庫
下一篇
SQL Server 無敵手冊第七篇- 淺談SQL Server備份基本概念
系列文
SQL Server 無敵手冊30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 則留言

0
funkent
iT邦高手 1 級 ‧ 2009-11-11 08:53:30

補上SQL Server 無敵手冊全系列的連結
SQL Server 無敵手冊

0
chieh365
iT邦新手 5 級 ‧ 2010-11-14 00:25:59

也可以直接下達console指令
使用預存程序來達到卸離的效果
exec sp_detach_db '資料庫名稱'

小弟不才,這是最近上課老師教的,請多指教^^"

我要留言

立即登入留言